﻿/*
Module Name:  IScript.cs
Project:      ScriptManager
Copyright (C) 2012 Felipe Ramos

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using System.Collections.Generic;

namespace ScriptManager.Scripting
{
    /// <summary>
    /// Script contract with Load, Update, Draw to leverage the XNA framework loop cycle.
    /// </summary>
    /// <typeparam name="T">Enum for script keys</typeparam>
    public interface IScript<T>
    {
        Dictionary<T, string> Values { get; set; }
        string ScriptPath { get; set; }  

        void Load(ContentManager content);
        void Update(GameTime gametime);
        void Draw(GameTime gameTime, SpriteBatch spriteBatch);
    }
}
